package com.example.voucher.extension;

import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.springframework.core.annotation.AliasFor;

/**
 * 
 * @author jie.deng
 *
 */
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface ExtensionPoint {

    @AliasFor("pointCode")
    public String value() default "";

    /**
     * 扩展点编号 未指定则赋值为接口的全类名 推荐格式：领域对象_业务用例_用例操作 eg. InvoiceVerify_delete_validate 表示核销单-删除-前置校验 eg.
     * InvoiceVerify_delete_doDeleteStep1 表示核销单-删除-删除业务逻辑步骤1
     * 
     * @return
     */
    @AliasFor("value")
    public String pointCode() default "";

}
